package com.decent.manager.system.service;

import com.decent.common.bo.SimpleMessage;
import com.decent.common.entity.manager.SystemMenu;
import com.decent.common.entity.manager.SystemRole;
import com.decent.manager.system.dto.SystemRoleDTO;
import com.decent.manager.system.vo.SystemRoleVO;

import java.util.List;

/**
 * 系统角色service
 *
 * @author wangyan
 **/
public interface SystemRoleService {
    /**
     * 查询角色菜单
     *
     * @param roleId 角色id
     * @return list
     */
    List<SystemMenu> getRoleMenus(Long roleId);

    /**
     * 查询用户角色
     *
     * @param userId 用户id
     * @return 角色
     */
    SystemRole getUserRole(Long userId);

    /**
     * 获取资源列表（INTERFACE级资源不需要返回）
     *
     * @param roleId 角色id
     * @return list
     */
    List<SystemMenu> getMenuList(Long roleId);

    /**
     * 查询公司角色列表
     *
     * @return list
     */
    List<SystemRoleVO> getRoleList();

    /**
     * 新增角色
     *
     * @param role 新增信息
     * @return SimpleMessage
     */
    SimpleMessage createRole(SystemRoleDTO role);

    /**
     * 修改角色
     *
     * @param role 修改信息
     * @return SimpleMessage
     */
    SimpleMessage updateRole(SystemRoleDTO role);

    /**
     * 菜单授权
     *
     * @param role 授权信息
     * @return SimpleMessage
     */
    SimpleMessage grantMenu(SystemRoleDTO role);
}
